home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1989-06-10 | 19.5 KB | 487 lines |
- 2 ' This programme is used to design MULTI SPANS CONTIUOUS BEAMS
- 3 ' This programme uses Advanced Basic Language (IBM - BASICA )
- 4 ' This programme is saved under the name [ CONTBEAM ]
- 5 ' Prepared by AMJAD J. SHAIR 23/2/1986 -
- 6 SCREEN 0,1 :WIDTH 40 :COLOR 15,1,0 :CLS :LOCATE 5
- 7 PRINT " CONTINUOUS BEAM DESIGN PREPARED BY : AMJAD JAMIL EL-SHAIR"
- 8 LOCATE 25,5 :PRINT "PRESS SPACE BAR TO CONTINUE ";
- 9 Y$=INKEY$ :IF Y$<>" " THEN 9
- 10 '-----------------------------------------------------------------Basic Data
- 20 WIDTH 80 :COLOR 15,1,0
- 30 CLEAR
- 40 OPEN "DATA1" FOR INPUT AS #1
- 50 IF EOF(1) THEN CLOSE :GOTO 80
- 60 INPUT #1,PRJ$,BLD$,DSR$,FC,FY,FYS,QA
- 70 GOTO 50
- 80 PSX(MAX.)=0.75*(4400/(FY+6090))*FC/FY ' Max. Ratio of Reinf'
- 90 PS(MIN.)=14/FY
- 100 '------------------------------------------ Enter Cantilevers Spans & Loads
- 110 CLS :LOCATE 2,12
- 120 PRINT "****** CONTINUOUS BEAM DESIGN ******"
- 125 PRINT
- 130 INPUT " ENTER BEAM FIRST SPAN NUMBER ",NMB
- 135 IF NMB<=0 GOTO 150
- 140 PRINT
- 145 INPUT " ENTER BEAM LAST SPAN NUMBER ",NMBL1
- 148 IF NMBL1<NMB THEN NMBL=NMB ELSE NMBL=NMBL1
- 150 CLS :LOCATE 2,10 :COLOR 15,5
- 160 PRINT " **** CONTINUOUS BEAM DESIGN * B"NMB " - B"NMBL " ****" TAB(70)""
- 170 PRINT
- 180 LOCATE ,10 :PRINT " Concrete Crushing Strength f'c ="FC" kg/cm2" TAB(70)""
- 190 LOCATE ,10 :PRINT " Reinf' Steel Yield Stress fy ="FY" kg/cm2" TAB(70)""
- 200 COLOR 15,1 :PRINT
- 210 IL=0 :LL=0 :WL=0 :RLC=0 :MLC=0
- 220 IR=0 :LR=0 :WR=0 :RRC=0 :MRC=0
- 230 PRINT " DO YOU HAVE A CANTILEVER AT THE LEFT END SUPPORT (Y/N) ? ";
- 240 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 240
- 242 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 250
- 244 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 570
- 250 PRINT
- 260 INPUT " ENTER SPAN LENGTH OF LEFT CANTILEVER L (m) ",LL
- 270 IF LL>0 GOTO 320
- 280 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 290 INPUT " **** INVALID ZERO SPAN LENGTH RE-ENTER L **** ",LL
- 300 COLOR ,1:PRINT
- 310 IF LL<=0 GOTO 390
- 320 INPUT " ENTER ULTIMATE UNIFORM LOAD INTENSITY W (ton/m) ",WL
- 330 IF WL>0 GOTO 420
- 340 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 350 INPUT " **** INVALID ZERO UNIFORM LOAD RE-ENTER W **** ",WL
- 360 COLOR ,1:PRINT
- 370 IF WL>0 GOTO 420
- 380 LL=0
- 390 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 400 PRINT " **** CANTILEVER AT LEFT END WILL BE NEGLECED **** "
- 410 COLOR ,1:PRINT :GOTO 570
- 420 RLC=WL*LL
- 430 MLC=-WL*LL^2/2
- 440 PRINT
- 450 PRINT " DO YOU HAVE CONCENTRATED LOADS ON LEFT CANTLV. (Y/N) ? ";
- 460 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 460
- 462 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 470
- 464 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 570
- 470 PRINT
- 480 INPUT " ENTER COCENTRATED LOAD VALUE F (ton) ",FL(IL+1)
- 490 IF FL(IL+1) <= 0 GOTO 540
- 500 INPUT " ENTER DISTANCE OF THAT COCENT. LOAD FROM FREE END (m) ",XFL(IL+1)
- 502 IF XFL(IL+1)<LL GOTO 510
- 504 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 505 INPUT " **** LOAD POSITION OUT OF SPAN RE-ENTER **** ",XFL(IL+1)
- 506 COLOR ,1 :IF XFL(IL+1)<LL GOTO 510
- 507 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 508 PRINT " **** THIS CONCENTRATED LOAD WILL BE NEGLECED **** "
- 509 COLOR ,1:PRINT :GOTO 550
- 510 IL=IL+1
- 520 RLC=RLC+FL(IL)
- 530 MLC=MLC-FL(IL)*(LL-XFL(IL))
- 540 PRINT
- 550 PRINT " DO YOU HAVE MORE CONCENT. LOADS ON LEFT CANTLV. (Y/N) ? ";
- 560 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 560
- 562 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 470
- 564 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 570
- 570 PRINT :PRINT " ------------------------------------------------------------------- " :PRINT
- 580 PRINT " DO YOU HAVE A CANTILEVER AT THE RIGHT END SUPPORT (Y/N) ? ";
- 590 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 590
- 592 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 600
- 594 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 920
- 600 PRINT
- 610 INPUT " ENTER SPAN LENGTH OF RIGHT CANTILEVER L (m) ",LR
- 620 IF LR>0 GOTO 670
- 630 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 640 INPUT " **** INVALID ZERO SPAN LENGTH RE-ENTER L **** ",LR
- 650 COLOR ,1:PRINT
- 660 IF LR<=0 GOTO 740
- 670 INPUT " ENTER ULTIMATE UNIFORM LOAD INTENSITY W (ton/m) ",WR
- 680 IF WR>0 GOTO 770
- 690 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 700 INPUT " **** INVALID ZERO UNIFORM LOAD RE-ENTER W **** ",WR
- 710 COLOR ,1:PRINT
- 720 IF WR>0 GOTO 770
- 730 LR=0
- 740 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 750 PRINT " **** CANTILEVER AT RIGHT END WILL BE NEGLECED **** "
- 760 COLOR ,1:PRINT :GOTO 920
- 770 RRC=WR*LR
- 780 MRC=WR*LR^2/2
- 790 PRINT
- 800 PRINT " DO YOU HAVE CONCENTRATED LOADS ON RIGHT CANTLV. (Y/N) ? ";
- 810 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 810
- 812 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 820
- 814 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 920
- 820 PRINT
- 830 INPUT " ENTER COCENTRATED LOAD VALUE F (ton) ",FR(IR+1)
- 840 IF FR(IR+1) <= 0 GOTO 890
- 850 INPUT " ENTER DISTANCE OF THAT COCENT. LOAD FROM FREE END (m) ",XFR(IR+1)
- 852 IF XFR(IR+1)<LR GOTO 860
- 854 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 855 INPUT " **** LOAD POSITION OUT OF SPAN RE-ENTER **** ",XFR(IR+1)
- 856 COLOR ,1 :IF XFR(IR+1)<LR GOTO 860
- 857 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 858 PRINT " **** THIS CONCENTRATED LOAD WILL BE NEGLECED **** "
- 859 COLOR ,1:PRINT :GOTO 900
- 860 IR=IR+1
- 870 RRC=RRC+FR(IR)
- 880 MRC=MRC+FR(IR)*(LR-XFR(IR))
- 890 PRINT
- 900 PRINT " DO YOU HAVE MORE CONCENT. LOADS ON RIGHT CANTLV. (Y/N) ? ";
- 910 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 910
- 912 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 820
- 914 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 920
- 920 '----------------------------------------- Check Cantilever Spans & Loading
- 922 GOSUB 8500 'To display heading and data
- 924 PRINT " ** CANTILEVER AT LEFT END ** "
- 926 PRINT " ---------------------------------"
- 928 IF LL<=0 THEN PRINT " NO CANTILEVER AT LEFT END " :PRINT :GOTO 940
- 930 PRINT " SPAN LENGTH L ="LL" meter "
- 932 PRINT " UNIF. DIST. LOAD W ="WL" ton/meter "
- 933 PRINT
- 934 IF IL<=0 GOTO 940
- 935 FOR I=1 TO IL
- 936 PRINT " COCENTRATED LOAD F"I"="FL(I)" ton at "XFL(I)" meter from free Left End"
- 937 PRINT
- 938 NEXT I
- 940 PRINT " ** CANTILEVER AT RIGHT END ** "
- 942 PRINT " ---------------------------------"
- 944 IF LR<=0 THEN PRINT " NO CANTILEVER AT RIGHT END " :PRINT :GOTO 960
- 946 PRINT " SPAN LENGTH L ="LR" meter "
- 948 PRINT " UNIF. DIST. LOAD W ="WR" ton/meter "
- 950 PRINT
- 952 IF IR<=0 GOTO 960
- 954 FOR I=1 TO IR
- 955 PRINT " COCENTRATED LOAD F"I"="FR(I)" ton at "XFR(I)" meter from free Right End"
- 956 PRINT
- 957 NEXT I
- 960 PRINT :LOCATE 24,8 :COLOR 0,7
- 965 PRINT " DO YOU WANT TO CHANGE THE ABOVE SHOWN DATA (Y/N) ? ";
- 970 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 970
- 980 IF Y$="Y" OR Y$="y" THEN COLOR 15,1 :PRINT " YES" :GOTO 150
- 990 IF Y$="N" OR Y$="n" THEN COLOR 15,1 :PRINT " NO " :GOTO 1000
- 1000 '------------------------------------------------ Enter Beam Spans & Loads
- 1005 PRINT
- 1010 J=0 :T=0
- 1020 GOSUB 8500 'To display heading and data
- 1030 INPUT " ENTER NUMBER OF SPANS OF THE BEAM (1 TO 7) ",N
- 1040 IF N>=1 AND N<=7 GOTO 1090
- 1050 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 1060 INPUT " **** INVALID NUMBER OF SPANS RE-ENTER N **** ",N
- 1070 COLOR ,1:PRINT
- 1080 IF (N<1) OR (N>7) GOTO 8400
- 1090 PRINT
- 1092 IF NMBL1<NMB OR NMBL>NMB+N-1 THEN NMBL=NMB+N-1
- 1095 IF NMBL1>=NMB AND NMBL1<=NMB+N-1 THEN NMBL=NMBL1
- 1100 FOR I=1 TO N
- 1110 GOSUB 21100
- 1120 NEXT
- 1130 PRINT :PRINT
- 1140 PRINT " *** Press SPACE BAR to continue *** ";
- 1150 Y$=INKEY$ :IF Y$<>" " THEN 1150
- 2400 '---------------------------------------------- Check Beam Spans & Loading
- 2410 FOR I=1 TO N
- 2420 GOSUB 8500 'To display heading and data
- 2430 PRINT
- 2440 PRINT " NUMBER OF SPANS = "N :PRINT
- 2450 PRINT " ** CHECKING EACH SPAN LENGTH & LOADING **"
- 2460 PRINT " --------------------------------------------" :PRINT
- 2470 PRINT " ** SPAN No."I" : B"NMB+I-1 TAB(33)"** "
- 2480 PRINT " -----------------------------"
- 2490 PRINT " SPAN LENGTH L ="L(I)" meter "
- 2500 PRINT " UNIF. DIST. LOAD W ="W(I)" ton/meter "
- 2502 PRINT
- 2505 IF J(I)<=0 GOTO 2575
- 2510 J=J(I)
- 2520 FOR J=1 TO J
- 2530 IF F(I,J)<=0 GOTO 2550
- 2540 PRINT " COCENTRATED LOAD F"J"="F(I,J)" ton at "X(I,J)" meter from left support "
- 2550 NEXT J
- 2560 J=J-1
- 2570 PRINT
- 2575 IF Z(I)<=0 GOTO 2645
- 2580 Z=Z(I)
- 2590 FOR Z=1 TO Z
- 2600 IF W3(I,Z)<=0 GOTO 2620
- 2610 PRINT " UNIF. BLOCK LOAD W"Z"="W3(I,Z)" t/m at "A3(I,Z)"m from left support For "B3(I,Z)"m length"
- 2620 NEXT Z
- 2630 Z=Z-1
- 2640 PRINT
- 2645 IF Q(I)<=0 GOTO 2730
- 2650 Q=Q(I)
- 2660 FOR Q=1 TO Q
- 2670 IF W5(I,Q)<=0 GOTO 2690
- 2680 PRINT " TRIANGULAR LOAD W"Q"="W5(I,Q)" t/m at "A5(I,Q)"m from left support For "B5(I,Q)"m length With max. Load Intensity at"C5(I,Q)"m from left"
- 2690 NEXT Q
- 2700 Q=Q-1
- 2710 PRINT
- 2730 PRINT :LOCATE 24,8 :COLOR 0,7
- 2740 PRINT " DO YOU WANT TO CHANGE THE ABOVE SHOWN DATA (Y/N) ? ";
- 2750 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 2750
- 2755 IF Y$="Y" OR Y$="y" THEN COLOR 15,1 :PRINT " YES" :PRINT :GOSUB 21100 :GOTO 2420
- 2760 IF Y$="N" OR Y$="n" THEN COLOR 15,1 :PRINT " NO "
- 2770 NEXT
- 2780 PRINT
- 2790 PRINT " Beam Span Length & Loading Data checking is COMPLETED " :PRINT
- 2792 PRINT " *** Press SPACE BAR to continue *** ";
- 2795 Y$=INKEY$ :IF Y$<>" " THEN 2795
- 2800 '------------------ ENTERING SUPPORT DIMENSION
- 2805 GOSUB 8500
- 2810 ON N GOSUB 17500,18000
- 2815 IF N>=3 THEN GOSUB 18500
- 2820 PRINT
- 2825 PRINT " ENTER WIDTH OF EACH SUPPORT IN THE DIRECTION OF THE BEAM"
- 2830 PRINT " ----------------------------------------------------------":PRINT
- 2835 FOR I= 1 TO N+1
- 2840 PRINT " SUPPORT AT JOINT No. "I" t (cm) = ";
- 2845 INPUT BS(I):PRINT
- 2850 NEXT
- 2855 PRINT :LOCATE ,4 :COLOR 0,15
- 2858 PRINT " DO YOU WANT TO CHANGE THE ABOVE SHOWN DATA (Y/N) ? ";
- 2860 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 2860
- 2862 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :COLOR 15,1 :GOTO 2800
- 2864 IF Y$="N" OR Y$="n" THEN PRINT " NO " :COLOR 15,1
- 2865 PRINT :PRINT :LOCATE ,4 :COLOR 0,15
- 2870 PRINT " DO YOU WANT TO DESIGN FOR Mu -ve AT FACE OF SUPPORT (Y/N) ? ";
- 2875 DFS$=INKEY$ :IF DFS$<>"Y" AND DFS$<>"y" AND DFS$<>"N" AND DFS$<>"n" THEN 2875
- 2880 IF DFS$="Y" OR DFS$="y" THEN PRINT " YES" :COLOR 15,1 :PRINT
- 2885 IF DFS$="N" OR DFS$="n" THEN PRINT " NO " :COLOR 15,1 :PRINT
- 2890 CHAIN "CBFLEX",2900,ALL
- 5900 '-------------------------------------------------------End of Beam Design
- 5910 PRINT " DO YOU HAVE OTHER BEAMS TO DESIGN (Y/N) ? ";
- 5920 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 5920
- 5930 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 10
- 5940 IF Y$="N" OR Y$="n" THEN PRINT " NO " :PRINT :PRINT " [ YOU WILL BE SEND BACK TO THE RCDESIGN MAIN MENU ] " :CHAIN "RCDESIGN",2500
- 5990 END '------------------------------------------------------End of Running
- 8400 '-------- SUBROUTINE ----------------------------- Display Invalid Entries
- 8410 PRINT :LOCATE ,6 :COLOR ,4 : BEEP
- 8420 PRINT " *** YOU WERE GIVEN TWO CHANCES TO ENTER , BUT YOU FAILED *** "TAB(72)"" :COLOR ,1
- 8430 PRINT :LOCATE ,6 :COLOR ,4
- 8440 PRINT " *** ENTER Y TO REDO THIS BEAM OR TO GO FOR OTHER BEAMS *** "TAB(72)"" :COLOR ,1
- 8450 PRINT
- 8460 GOTO 5900
- 8500 '------------------------------ SUBROUTINE : Display Heading & Basic Data
- 8510 CLS :LOCATE 2,3 :COLOR 15,5
- 8520 PRINT " **** CONTINUOUS BEAM DESIGN * B"NMB" -B"NMBL" ****" TAB(78)""
- 8540 LOCATE ,3 :PRINT " MATERIAL PROPERTIES : Conc. f'c ="FC"kg/cm2 * Steel fy ="FY"kg/cm2" TAB(78)""
- 8550 COLOR 15,1 :PRINT
- 8560 RETURN
- 17500 '-------------- SUBROUTINE : Display Structural Analysis * ONE SPAN BEAM
- 17510 LT=LL+L(1)+LR
- 17520 XXL=CINT(LL/LT*38)
- 17530 XX1=CINT(L(1)/LT*38)
- 17540 XXR=CINT(LR/LT*38)
- 17550 XXT=XXL+XX1+XXR+2
- 17560 AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
- 17570 ZA=36+CINT(XXL/2)-3
- 17580 ZB=36+XXL
- 17590 ZC=ZB+CINT(XX1/2)-2
- 17600 ZD=ZB+XX1+1
- 17610 ZE=ZD+CINT(XXR/2)-2
- 17620 COLOR 0,7
- 17630 PRINT " JOINT NUMBER ................"TAB(ZB)"1" TAB(ZD)"2" TAB(80) ""
- 17640 PRINT " " TAB(36) AC$ TAB(80) ""
- 17650 PRINT " SPAN NUMBER ................";
- 17660 IF LL<=0 GOTO 17680
- 17670 PRINT TAB(ZA)"L/C";
- 17680 PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZD) AB$;
- 17690 IF LR<=0 GOTO 17710
- 17700 PRINT TAB(ZE) "R/C";
- 17710 PRINT TAB(80)""
- 17720 PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)""
- 17730 COLOR 15,1
- 17750 RETURN
- 18000 '------- SUBROUTINE : Display Spans and Joints Numbers * TWO SPANS BEAM
- 18010 LT=LL+L(1)+L(2)+LR
- 18020 XXL=CINT(LL/LT*50)
- 18030 XX1=CINT(L(1)/LT*50)
- 18040 XX2=CINT(L(2)/LT*50)
- 18050 XXR=CINT(LR/LT*50)
- 18060 XXT=XXL+XX1+XX2+XXR+3
- 18070 AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
- 18080 ZA=23+CINT(XXL/2)-3
- 18090 ZB=23+XXL
- 18100 ZC=ZB+CINT(XX1/2)-2
- 18110 ZF=ZB+XX1+1
- 18120 ZG=ZF+CINT(XX2/2)-2
- 18130 ZD=ZF+XX2+1
- 18140 ZE=ZD+CINT(XXR/2)-2
- 18150 COLOR 0,7
- 18160 PRINT " JOINT NUMBER ....."TAB(ZB)"1" TAB(ZF)"2" TAB(ZD)"3" TAB(80) ""
- 18170 PRINT "" TAB(23) AC$ TAB(80) ""
- 18180 PRINT " SPAN NUMBER .....";
- 18190 IF LL<=0 GOTO 18210
- 18200 PRINT TAB(ZA)"L/C";
- 18210 PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZG) "SPAN 2" TAB(ZD)AB$;
- 18220 IF LR<=0 GOTO 18240
- 18230 PRINT TAB(ZE) "R/C";
- 18240 PRINT TAB(80)""
- 18250 PRINT TAB(ZB) AB$ TAB(ZF) AB$ TAB(ZD) AB$ TAB(80)""
- 18260 COLOR 15,1
- 18300 RETURN
- 18500 '-------- SUBROUTINE : Display Spans and Joints Numbers * 3 - 7 SPANS
- 18510 IF N= 3 THEN XX1= 18 :XX= 55
- 18520 IF N= 4 THEN XX1= 14 :XX= 57
- 18530 IF N= 5 THEN XX1= 11 :XX= 56
- 18540 IF N= 6 THEN XX1= 9 :XX= 55
- 18550 IF N= 7 THEN XX1= 8 :XX= 57
- 18560 IF LL<=0 AND LR<=0 THEN XXT=XX :ZA= 15
- 18570 IF LL<=0 AND LR<>0 THEN XXT=XX+7 :ZA= 15
- 18580 IF LL<>0 AND LR<=0 THEN XXT=XX+7 :ZA= 8
- 18590 IF LL<>0 AND LR<>0 THEN XXT=XX+14 :ZA= 8
- 18600 AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205)
- 18610 COLOR 0,7
- 18620 PRINT " JOINT ";
- 18630 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-2) I; :NEXT :PRINT TAB(80) ""
- 18640 PRINT "" TAB(ZA) AC$ TAB(80) ""
- 18650 PRINT " SPAN No";
- 18660 IF LL<=0 GOTO 18680
- 18670 PRINT TAB(11)"L/C";
- 18680 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) "SPAN"I; :NEXT :PRINT TAB(16+XX-2) AB$;
- 18690 IF LR<=0 GOTO 18710
- 18700 PRINT TAB(16+XX-1) "R/C";
- 18710 PRINT TAB(80)""
- 18720 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) ""
- 18730 COLOR 15,1
- 18800 RETURN
- 21100 '------------------------------ SUBROUTINE to enter span length & loading
- 21110 J(I)=0 :L(I)=0 :W(I)=0 :RL(I)=0 :RR(I)=0 :MFL(I)=0 :MFR(I)=0 :MNL(I)=0 :MNR(I)=0 :MP(I)=0
- 21120 FOR CLJ=1 TO 8 :F(I,CLJ)=0 :X(I,CLJ)=0 :NEXT CLJ
- 21150 PRINT " ** SPAN No."I" : B"NMB+I-1 TAB(33)"** "
- 21160 PRINT " -----------------------------"
- 21170 INPUT " ENTER SPAN LENGTH L (m) ",L(I)
- 21180 IF L(I)>0 GOTO 21230
- 21190 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 21200 INPUT " **** INVALID ZERO SPAN LENGTH RE-ENTER L **** ",L(I)
- 21210 COLOR ,1:PRINT
- 21220 IF L(I)<=0 GOTO 8400
- 21230 INPUT " ENTER ULT. UNIFORMLY DISTRIBUTED LOAD INTENSITY W (t/m) ",W(I)
- 21240 IF W(I)>0 GOTO 21290
- 21250 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 21260 INPUT " **** INVALID ZERO DISTRIB. LOAD RE-ENTER W **** ",W(I)
- 21270 COLOR ,1 :PRINT
- 21280 IF W(I)<=0 GOTO 8400
- 21290 RLS(I)=W(I)*L(I)/2
- 21300 RRS(I)=W(I)*L(I)/2
- 21310 MFL(I)=W(I)*L(I)^2/12
- 21320 MFR(I)=-W(I)*L(I)^2/12
- 21325 PRINT " ------------------------------------------------------------------- " :PRINT
- 21330 J=0
- 21340 PRINT " DO YOU HAVE CONCENTRATED LOADS ON THIS BEAM SPAN (Y/N) ? ";
- 21350 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 21350
- 21352 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 21360
- 21354 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 21580
- 21360 PRINT :LOCATE ,6 :COLOR 0,7
- 21370 PRINT " For more than one Concentrated Load , Enter successivly from left "TAB(75)""
- 21380 LOCATE ,6 :PRINT " to right according to start position distance " TAB(75)""
- 21390 COLOR 15,1 :PRINT
- 21400 INPUT " ENTER CONCENTRATED LOAD VALUE F (ton) ",F(I,J+1)
- 21410 IF F(I,J+1)>0 GOTO 21450
- 21420 PRINT :LOCATE ,10 :COLOR ,4 :BEEP
- 21430 PRINT " !! This load will be neglected !! "
- 21440 COLOR ,1 :GOTO 21550
- 21450 INPUT " ENTER POSITION OF LOAD FROM LEFT END (meter) ",X(I,J+1)
- 21460 IF X(I,J+1)<=L(I) GOTO 21500
- 21470 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 21480 PRINT " !! Error !! Load position out of span RE-ENTER " TAB(70)""
- 21490 COLOR ,1 :LOCATE ,1 :PRINT :GOTO 21450
- 21500 J=J+1
- 21510 RLS(I)=RLS(I)+F(I,J)*(L(I)-X(I,J))/L(I)
- 21520 RRS(I)=RRS(I)+F(I,J)*X(I,J)/L(I)
- 21530 MFL(I)=MFL(I)+F(I,J)*X(I,J)*(L(I)-X(I,J))^2/L(I)^2
- 21540 MFR(I)=MFR(I)-F(I,J)*(L(I)-X(I,J))*X(I,J)^2/L(I)^2
- 21550 PRINT
- 21560 PRINT " MORE CONCENTRATED LOADS (Y/N) ? ";
- 21570 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 21570
- 21572 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 21390
- 21574 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 21580
- 21580 J(I)=J
- 21585 PRINT " ------------------------------------------------------------------- " :PRINT
- 21590 Z=0
- 21600 PRINT " DO YOU HAVE UNIFORM BLOCK LOADS ON THIS BEAM SPAN (Y/N) ? ";
- 21610 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 21610
- 21612 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 21620
- 21614 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 21910
- 21620 PRINT :LOCATE ,6 :COLOR 0,7
- 21630 PRINT " For more than one Block Load , Enter successivly from left to right"TAB(75)""
- 21640 LOCATE ,6 :PRINT " according to start posit. distance " TAB(75)""
- 21650 COLOR 15,1 :PRINT
- 21660 INPUT " ENTER LOAD INTENSITY W (t/m) ",W3(I,Z+1)
- 21670 IF W3(I,Z+1)>0 GOTO 21710
- 21680 PRINT :LOCATE ,10 :COLOR ,4 :BEEP
- 21690 PRINT " !! This load will be neglected !! "
- 21700 COLOR ,1 :GOTO 21880
- 21710 INPUT " ENTER START POSIT. OF LOAD BLOCK FROM LEFT END (meter) ",A3(I,Z+1)
- 21720 IF A3(I,Z+1)<=L(I) GOTO 21760
- 21730 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 21740 PRINT " !! Error !! Load start position out of span RE-ENTER " TAB(70)""
- 21750 COLOR ,1 :LOCATE ,1 :PRINT :GOTO 21710
- 21760 INPUT " ENTER LENGTH OF LOAD BLOCK (meter) ",B3(I,Z+1)
- 21770 IF B3(I,Z+1)<=L(I)-A3(I,Z+1) GOTO 21810
- 21780 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 21790 PRINT " !! Error !! Load block out of span RE-ENTER " TAB(70)""
- 21800 COLOR ,1 :LOCATE ,1 :PRINT :GOTO 21760
- 21810 Z=Z+1
- 21820 RLS(I)=RLS(I)+(W3(I,Z)*B3(I,Z)*(L(I)-A3(I,Z)-B3(I,Z)/2))/L(I)
- 21830 RRS(I)=RRS(I)+(W3(I,Z)*B3(I,Z)*(A3(I,Z)+B3(I,Z)/2))/L(I)
- 21840 K1=(A3(I,Z)+B3(I,Z))/L(I)
- 21850 K2=A3(I,Z)/L(I)
- 21860 MFL(I)=MFL(I)+W3(I,Z)*L(I)^2*K1^2*(6-8*K1+3*K1^2)/12-W3(I,Z)*L(I)^2*K2^2*(6-8*K2+3*K2^2)/12
- 21870 MFR(I)=MFR(I)-(W3(I,Z)*L(I)^2*K1^3*(4-3*K1)/12-W3(I,Z)*L(I)^2*K2^3*(4-3*K2)/12)
- 21880 PRINT
- 21890 PRINT " MORE UNIFORM BLOCK LOAD (Y/N) ? ";
- 21900 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 21900
- 21902 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 21650
- 21904 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 21910
- 21910 Z(I)=Z
- 21915 PRINT " ------------------------------------------------------------------- " :PRINT
- 21920 Q=0
- 21930 PRINT " DO YOU HAVE TRIANGULAR LOADS ON THIS BEAM SPAN (Y/N) ? ";
- 21940 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 21940
- 21942 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 21950
- 21944 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 22330
- 21950 PRINT :LOCATE ,6 :COLOR 0,7
- 21960 PRINT " For more than one Triangular Load , Enter successivly from left to "TAB(75)""
- 21970 LOCATE ,6 :PRINT " right according to start posit. distance " TAB(75)""
- 21980 COLOR 15,1 :PRINT
- 21990 INPUT " ENTER MAXIMUM LOAD INTENSITY W (t/m) ",W5(I,Q+1)
- 22000 IF W5(I,Q+1)>0 GOTO 22040
- 22010 PRINT :LOCATE ,10 :COLOR ,4 :BEEP
- 22020 PRINT " !! This load will be neglected !! "
- 22030 COLOR ,1 :GOTO 22300
- 22040 INPUT " ENTER START POSITION OF TRIANGULER LOAD FROM LEFT END (meter)",A5(I,Q+1)
- 22050 IF A5(I,Q+1)<=L(I) GOTO 22090
- 22060 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 22070 PRINT " !! Error !! Load start position out of span RE-ENTER " TAB(70)""
- 22080 COLOR ,1 :LOCATE ,1 :PRINT :GOTO 22040
- 22090 INPUT " ENTER LENGTH OF TRIANGULER LOAD (meter)",B5(I,Q+1)
- 22100 IF B5(I,Q+1)<=L(I)-A5(I,Q+1) GOTO 22140
- 22110 PRINT :LOCATE ,6 :COLOR ,4 :BEEP
- 22120 PRINT " !! Error !! Load block out of span RE-ENTER " TAB(70)""
- 22130 COLOR ,1 :LOCATE ,1 :PRINT :GOTO 22090
- 22140 INPUT " ENTER MAX. LOAD INTENSITY POSITION FROM LEFT END (meter)",C5(I,Q+1)
- 22150 IF C5(I,Q+1)>=A5(I,Q+1) AND C5(I,Q+1)<=(A5(I,Q+1)+B5(I,Q+1)) GOTO 22190
- 22160 PRINT :LOCATE ,3 :COLOR ,4 :BEEP
- 22170 PRINT " !! Error !! Maximum load intensity position out of load triangle RE-ENTER"
- 22180 COLOR ,1 :LOCATE ,1 :PRINT :GOTO 22140
- 22190 Q=Q+1
- 22200 RLS(I)=RLS(I)+(W5(I,Q)*(A5(I,Q)+B5(I,Q)-C5(I,Q))*0.5*(L(I)-C5(I,Q)-(A5(I,Q)+B5(I,Q)-C5(I,Q))/3))/L(I)+(W5(I,Q)*(C5(I,Q)-A5(I,Q))*0.5*(L(I)-C5(I,Q)+(C5(I,Q)-A5(I,Q))/3))/L(I)
- 22210 RRS(I)=RRS(I)+(W5(I,Q)*(A5(I,Q)+B5(I,Q)-C5(I,Q))*0.5*(C5(I,Q)+(A5(I,Q)+B5(I,Q)-C5(I,Q))/3))/L(I)+(W5(I,Q)*(C5(I,Q)-A5(I,Q))*0.5*(C5(I,Q)-(C5(I,Q)-A5(I,Q))/3))/L(I)
- 22220 K1=(A5(I,Q)+B5(I,Q))/L(I)
- 22230 K2=C5(I,Q)/L(I)
- 22240 K3=(L(I)-A5(I,Q))/L(I)
- 22250 K4=(L(I)-C5(I,Q))/L(I)
- 22260 IF C5(I,Q)=A5(I,Q)+B5(I,Q) THEN WL5=0 :GOTO 22270 ELSE WL5=W5(I,Q)*(A5(I,Q)+B5(I,Q))/(A5(I,Q)+B5(I,Q)-C5(I,Q))
- 22270 IF C5(I,Q)=A5(I,Q) THEN WR5=0 :GOTO 22280 ELSE WR5=W5(I,Q)*(L(I)-A5(I,Q))/(C5(I,Q)-A5(I,Q))
- 22280 MFL1=WL5*L(I)^2*K1^2*(10-10*K1+3*K1^2)/60-((WL5-W5(I,Q))*L(I)^2*K2^2*(10-10*K2+3*K2^2)/60)-(W5(I,Q)*L(I)^2*K2^2*(6-8*K2+3*K2^2)/12)
- 22282 MFL2=WR5*L(I)^2*K3^3*(5-3*K3)/60-((WR5-W5(I,Q))*L(I)^2*K4^3*(5-3*K4)/60)-(W5(I,Q)*L(I)^2*K4^3*(4-3*K4)/12)
- 22285 MFR1=WL5*L(I)^2*K1^3*(5-3*K1)/60-((WL5-W5(I,Q))*L(I)^2*K2^3*(5-3*K2)/60)-(W5(I,Q)*L(I)^2*K2^3*(4-3*K2)/12)
- 22288 MFR2=WR5*L(I)^2*K3^2*(10-10*K3+3*K3^2)/60-((WR5-W5(I,Q))*L(I)^2*K4^2*(10-10*K4+3*K4^2)/60)-(W5(I,Q)*L(I)^2*K4^2*(6-8*K4+3*K4^2)/12)
- 22290 IF C5(I,Q)=A5(I,Q) THEN MFL(I)=MFL(I)+MFL1 :MFR(I)=MFR(I)-MFR1 :GOTO 22300
- 22292 IF C5(I,Q)=A5(I,Q)+B5(I,Q) THEN MFL(I)=MFL(I)+MFL2 :MFR(I)=MFR(I)-MFR2 :GOTO 22300
- 22295 IF C5(I,Q)>A5(I,Q) AND C5(I,Q)<(A5(I,Q)+B5(I,Q)) THEN MFL(I)=MFL(I)+MFL1+MFL2 :MFR(I)=MFR(I)-MFR1-MFR2
- 22300 PRINT
- 22310 PRINT " MORE PARTIAL TRIANGULER LOADS (Y/N) ? ";
- 22320 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 22320
- 22322 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 21980
- 22324 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 22330
- 22330 Q(I)=Q
- 22335 PRINT " ------------------------------------------------------------------- " :PRINT
- 22340 RETURN
-